﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DAO;
using DTO;
using System.Globalization;

namespace TiDiSun
{
    public partial class frmChonBoKichDien : Form
    {
        public frmChonBoKichDien()
        {
            InitializeComponent();
        }

        #region "Thuộc tính"

        public static DataTable _dt; //Biến này lưu thông tin các acquy được dùng

        //Biến này lưu giá acquy phải trả
        public static int _tong_tien_bo_kich_dien;


        #endregion 

        int makh;
        //Phương thức này danh sách mạch sạc có cường độ dòng điện phù hợp
        private object lay_danh_sach_mach_sac()
        {
            return BoChuyenDoiDienBUS.lay_danh_sach_bo_kich_dien(double.Parse(this.Tag.ToString()));
        }

        //Phương thức này khởi tạo các giá trị ban đầu.
        List<double> a = new List<double>();
        private void khoi_tao()
        {
            
            txtCongSuatTai.Text = this.Tag.ToString();

            dtgvDanhSachBoKichDien.DataSource = lay_danh_sach_mach_sac();
            txtSoLuong.Enabled = false;
            btnThem.Enabled = false;
            btnXoa.Enabled = false;
            khoi_tao_cot();
        }
        int tong_tien = 0;
        //Hàm này tính toán dữ tổng tiền acquy phải trả 
        private void tinh_tong_tien_bo_kich_dien()
        {
            
            foreach (DataRow r in _dt.Rows)
            {
                tong_tien += int.Parse(r[5].ToString());
            }
            _tong_tien_bo_kich_dien = tong_tien;
            txtTongTienBoKichDien.Text = tong_tien.ToString("###,###,##0.", CultureInfo.InvariantCulture).TrimStart().Replace(".", ",") + " VND";
        }


        //Phương thức khởi tạo cột của datagridview
        private void khoi_tao_cot()
        {
            _dt = new DataTable();
            _dt.Columns.Add("Mã bộ kích điện", typeof(string));
            _dt.Columns.Add("Công Suất", typeof(int));
            _dt.Columns.Add("Loại sản phẩm", typeof(string));
            _dt.Columns.Add("Số lượng", typeof(int));
            _dt.Columns.Add("Đơn giá", typeof(int));
            _dt.Columns.Add("Thành tiền", typeof(int));

            dtgvDanhSachBoKichDienDaChon.AllowUserToAddRows = false;
            dtgvDanhSachBoKichDienDaChon.DataSource = _dt;

        }


        private void frmChonBoKichDien_Load(object sender, EventArgs e)
        {
            khoi_tao();
        }

        private void dtgvDanhSachBoKichDien_Click(object sender, EventArgs e)
        {
            txtSoLuong.Enabled = true;
            btnThem.Enabled = true;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {
                int SoLuongAcQuyDuocChon = int.Parse(txtSoLuong.Text);

                if (SoLuongAcQuyDuocChon > 0)
                {
                    DataGridViewRow row = dtgvDanhSachBoKichDien.SelectedRows[0];
                    dtgvDanhSachBoKichDienDaChon.AllowUserToAddRows = true;
                    _dt.Rows.Add(row.Cells[0].Value.ToString(), row.Cells[1].Value.ToString(), row.Cells[2].Value.ToString(), txtSoLuong.Text, row.Cells[3].Value.ToString(), (int.Parse(row.Cells[3].Value.ToString()) * int.Parse(txtSoLuong.Text)).ToString());
                    dtgvDanhSachBoKichDienDaChon.DataSource = _dt;
                    tinh_tong_tien_bo_kich_dien();
                }
                else
                {
                    MessageBox.Show("Số lượng phải lớn hơn 0");
                }
            }
            catch
            {
                MessageBox.Show("Chưa có dữ liệu");
            }
           
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                int index = dtgvDanhSachBoKichDienDaChon.SelectedRows[0].Index;
                _dt.Rows.RemoveAt(index);
                dtgvDanhSachBoKichDienDaChon.DataSource = _dt;
                tinh_tong_tien_bo_kich_dien();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void dtgvDanhSachBoKichDienDaChon_Click(object sender, EventArgs e)
        {
            btnXoa.Enabled = true;
        }

        private void dtgvDanhSachBoKichDienDaChon_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                frmCapNhatSoLuongBoKichDien frm = new frmCapNhatSoLuongBoKichDien();
                int index = dtgvDanhSachBoKichDienDaChon.SelectedRows[0].Index;
                frm.Tag = _dt.Rows[index][3].ToString();
                frm.ShowDialog();

                if (frmCapNhatSoLuongBoKichDien._soLuong >= 1)
                {
                    _dt.Rows[index][3] = frmCapNhatSoLuongBoKichDien._soLuong.ToString();
                    _dt.Rows[index][5] = frmCapNhatSoLuongBoKichDien._soLuong * int.Parse(_dt.Rows[index][4].ToString());
                    dtgvDanhSachBoKichDienDaChon.DataSource = _dt;
                    tinh_tong_tien_bo_kich_dien();
                }
            }
            catch
            {
                MessageBox.Show("chưa có dữ liệu");
            }
           
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void btnSAVE_Click(object sender, EventArgs e)
        {

            if (_dt.Rows.Count > 0)
            {
                HoaDonHelper.dt = _dt;
                HoaDonHelper.tongtien = tong_tien;
                this.Close();
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
